PL/SQL Collections হল ডেটা স্ট্রাকচার, যা একাধিক মান সংরক্ষণ করতে সক্ষম। এগুলি অ্যারের মতো কাজ করে, যেখানে একাধিক মান একই ধরনের ডেটা টাইপের হতে পারে। PL/SQL-এ তিন ধরনের collection রয়েছে:
এই Collections গুলি আপনাকে একাধিক ডেটা আইটেম একই সময়ে প্রক্রিয়া করার সুবিধা দেয়। প্রতিটি টাইপের Collection বিভিন্ন ধরনের ডেটার সাথে কাজ করতে সহায়তা করে এবং উপযুক্ত কৌশল এবং পারফরমেন্স অপটিমাইজেশন প্রদান করে।
Associative Arrays হল এমন একটি Collection যা একটি নির্দিষ্ট কী দ্বারা পরিচালিত হয়। এটি এক ধরনের অ্যারে, যেখানে আপনি একটি কি (সাধারণত, একটি সংখ্যা বা স্ট্রিং) ব্যবহার করে ভ্যালু অ্যাক্সেস করেন। এই ধরনের অ্যারে ইনডেক্সের মাধ্যমে উপাদানগুলিকে সংরক্ষণ করে এবং আপনাকে নির্দিষ্ট ইনডেক্স বা কী দ্বারা অ্যাক্সেস করার সুবিধা দেয়।
DECLARE
TYPE array_type IS TABLE OF datatype INDEX BY BINARY_INTEGER;
my_array array_type;
BEGIN
-- Adding elements
my_array(1) := value1;
my_array(2) := value2;
-- Accessing elements
DBMS_OUTPUT.PUT_LINE(my_array(1));
END;
DECLARE
TYPE emp_array IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
emp_names emp_array;
BEGIN
emp_names(1) := 'John';
emp_names(2) := 'Jane';
emp_names(3) := 'Alice';
DBMS_OUTPUT.PUT_LINE('Employee 1: ' || emp_names(1));
DBMS_OUTPUT.PUT_LINE('Employee 2: ' || emp_names(2));
DBMS_OUTPUT.PUT_LINE('Employee 3: ' || emp_names(3));
END;
Output:
Employee 1: John
Employee 2: Jane
Employee 3: Alice
Nested Tables হল একটি Collection যা একটি টেবিলের মতো কাজ করে, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ডেটা টাইপের হতে পারে। Nested Table সাধারণত ডেটাবেস টেবিলের কলামের মতো কাজ করে, যেখানে একাধিক মান সংরক্ষণ করা যায়। তবে, Nested Table একটি পূর্ণাঙ্গ collection এবং এটি স্থায়ীভাবে ডেটাবেসে সংরক্ষণ করা যেতে পারে।
DECLARE
TYPE table_type IS TABLE OF datatype;
my_table table_type;
BEGIN
-- Adding elements
my_table := table_type(value1, value2, value3);
-- Accessing elements
FOR i IN 1..my_table.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(my_table(i));
END LOOP;
END;
DECLARE
TYPE number_table IS TABLE OF NUMBER;
num_list number_table;
BEGIN
num_list := number_table(10, 20, 30, 40, 50);
FOR i IN 1..num_list.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Number: ' || num_list(i));
END LOOP;
END;
Output:
Number: 10
Number: 20
Number: 30
Number: 40
Number: 50
VARRAYs হল একটি নির্দিষ্ট সাইজের Collection যা একাধিক ডেটা আইটেম ধারণ করতে পারে। তবে, VARRAYs-এ একটি সীমিত সংখ্যা থাকতে পারে (যদিও এটি নির্দিষ্ট সংখ্যার মধ্যে থাকতে পারে)। VARRAY সাধারণত প্যাকেজে বা ডেটাবেসে ডেটা টাইপের সাথে সংযুক্ত থাকে। এটি একাধিক উপাদান ধারণ করতে পারে, তবে তার আয়তন আগে থেকেই নির্ধারিত থাকে।
DECLARE
TYPE array_type IS VARRAY(size_limit) OF datatype;
my_varray array_type;
BEGIN
-- Adding elements
my_varray := array_type(value1, value2, value3);
-- Accessing elements
FOR i IN 1..my_varray.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(my_varray(i));
END LOOP;
END;
DECLARE
TYPE number_varray IS VARRAY(5) OF NUMBER;
num_array number_varray;
BEGIN
num_array := number_varray(1, 2, 3, 4, 5);
FOR i IN 1..num_array.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Element ' || i || ': ' || num_array(i));
END LOOP;
END;
Output:
Element 1: 1
Element 2: 2
Element 3: 3
Element 4: 4
Element 5: 5
PL/SQL-এ collections-এর কিছু গুরুত্বপূর্ণ মেথড রয়েছে, যেগুলি collections এর উপাদানগুলি পরিচালনা করতে ব্যবহৃত হয়।
EXTEND
মেথডটি collection-এ নতুন উপাদান যোগ করতে ব্যবহৃত হয়।
collection_name.EXTEND(n);
এটি n
সংখ্যক উপাদান collection-এ যোগ করে।
DELETE
মেথডটি collection থেকে নির্দিষ্ট উপাদান মুছে ফেলার জন্য ব্যবহৃত হয়।
collection_name.DELETE;
এটি পুরো collection পরিষ্কার করে দেয়।
EXISTS
মেথডটি collection-এর একটি নির্দিষ্ট ইনডেক্সে উপাদান আছে কিনা তা চেক করতে ব্যবহৃত হয়।
collection_name.EXISTS(index);
FIRST
এবং LAST
মেথডগুলি collection-এর প্রথম এবং শেষ ইনডেক্স রিটার্ন করে।
collection_name.FIRST;
collection_name.LAST;
PL/SQL-এর collections আপনাকে একাধিক ডেটা আইটেম সংরক্ষণ ও পরিচালনা করার জন্য বিভিন্ন পদ্ধতি প্রদান করে। তিনটি প্রধান ধরনের collection রয়েছে: Associative Arrays, Nested Tables, এবং VARRAYs। এদের প্রতিটির আলাদা ব্যবহার এবং বৈশিষ্ট্য রয়েছে, এবং এগুলি ডেটা ম্যানিপুলেশনের জন্য খুবই গুরুত্বপূর্ণ।
Collections হল PL/SQL-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা একাধিক মান বা ডেটা একত্রে সংরক্ষণ এবং পরিচালনা করার জন্য ব্যবহৃত হয়। এটি বিশেষভাবে উপকারী যখন আপনাকে একাধিক রেকর্ড বা মান একত্রে কাজ করতে হয়।
PL/SQL-এ Collections তিন ধরনের হতে পারে:
প্রতিটি প্রকারের Collection এর আলাদা বৈশিষ্ট্য ও ব্যবহার রয়েছে।
Associative Arrays হল একটি collection যা ইন্ডেক্স (key) এর মাধ্যমে ডেটা অ্যাক্সেস করতে পারে, এবং এটি এমনভাবে ডিজাইন করা যাতে এর ইনডেক্স পজিশন নম্বর হতে পারে না, বরং এটি যেকোনো ডেটা টাইপ হতে পারে (যেমন, সংখ্যা, স্ট্রিং ইত্যাদি)। এটি একাধিক মান সংরক্ষণ করতে ব্যবহৃত হয় যেখানে ইনডেক্সটি একটি কাস্টম মান হতে পারে।
DECLARE
TYPE emp_table_type IS TABLE OF employees.employee_name%TYPE INDEX BY VARCHAR2(10);
emp_names emp_table_type;
BEGIN
emp_names('E101') := 'Alice';
emp_names('E102') := 'Bob';
emp_names('E103') := 'Charlie';
DBMS_OUTPUT.PUT_LINE('Employee with ID E102: ' || emp_names('E102'));
END;
এখানে, emp_names
একটি Associative Array, যেখানে E101
, E102
, ইত্যাদি হল ইনডেক্স এবং তাদের মান হল সংশ্লিষ্ট কর্মচারীদের নাম।
Nested Tables একটি collection যা একধরণের সারণির মতো কাজ করে। এটি একাধিক মান সংরক্ষণ করতে সক্ষম, তবে এগুলি একটি ধারাবাহিক একক সারণির মধ্যে স্টোর হয়। Nested Tables সাধারণত ডাটাবেস টেবিলের মতোই আচরণ করে এবং এগুলি পুনরুদ্ধার ও আপডেট করার জন্য SQL ব্যবহার করা যায়।
DECLARE
TYPE number_table IS TABLE OF NUMBER;
num_list number_table := number_table(10, 20, 30, 40);
BEGIN
FOR i IN 1..num_list.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Number: ' || num_list(i));
END LOOP;
END;
এখানে, num_list
একটি Nested Table যা একাধিক সংখ্যা ধারণ করছে, এবং FOR
লুপের মাধ্যমে সেগুলি একে একে আউটপুট হিসেবে প্রদর্শিত হচ্ছে।
VARRAYs (Variable-size arrays) হল একটি collection যেখানে ফিক্সড সংখ্যক উপাদান থাকে, এবং এর আকার নির্দিষ্ট সংখ্যার বেশি হলে ডেটা স্বয়ংক্রিয়ভাবে প্রসারিত হতে পারে। VARRAYs সাধারণত ছোট আকারের বা সীমিত পরিসরের জন্য ব্যবহার করা হয়।
DECLARE
TYPE num_varray IS VARRAY(5) OF NUMBER;
num_list num_varray := num_varray(10, 20, 30);
BEGIN
FOR i IN 1..num_list.LIMIT LOOP
DBMS_OUTPUT.PUT_LINE('Number: ' || num_list(i));
END LOOP;
END;
এখানে, num_list
একটি VARRAY যা ৫টি সংখ্যার মধ্যে সীমাবদ্ধ।
PL/SQL-এ Collections ব্যবহারের অনেক কারণ এবং সুবিধা রয়েছে, যা বিভিন্ন পরিস্থিতিতে অত্যন্ত কার্যকরী।
Collections আপনাকে একাধিক ডেটা মান একত্রে সংরক্ষণ করতে সাহায্য করে। এটি এমন পরিস্থিতিতে ব্যবহৃত হয় যেখানে আপনি একাধিক রেকর্ড বা ভ্যালু সংরক্ষণ করতে চান, যেমন লুপের ভিতরে একাধিক মান রাখতে।
Collections ব্যবহার করে আপনি একাধিক ডেটা মানের উপর একযোগে কাজ করতে পারেন, যেমন একাধিক আইটেমকে ফিল্টার করা, পরিসংখ্যান হিসাব করা, অথবা সমষ্টি বের করা।
ব্যাপক ডেটা ম্যানিপুলেশন বা কার্যকরী কর্মধারা সম্পাদন করতে Collections সহায়ক। যেমন, একাধিক ডেটা ফেচ করা হলে, সেটি একটি Collection এ সঞ্চিত করা হয় এবং পরে তার উপরে কার্যক্রম পরিচালনা করা হয়।
Collections ব্যবহার করে একাধিক রেকর্ড একত্রে প্রক্রিয়া করা যেতে পারে, যা কার্যক্ষমতা বাড়াতে সাহায্য করে। উদাহরণস্বরূপ, BULK COLLECT
এবং FORALL
ব্যবহার করা যেতে পারে Collections-এ ডেটা দ্রুতভাবে হ্যান্ডেল করতে।
Collections কোডের জটিলতা কমিয়ে আনতে সহায়তা করে, কারণ এতে একাধিক ভেরিয়েবল বা তত্ত্ব একসাথে পরিচালনা করা সহজ হয়ে যায়।
Collections বিভিন্ন ধরনের ডেটা ধারণ করতে সক্ষম (যেমন সংখ্যা, স্ট্রিং, অবজেক্ট ইত্যাদি), এবং এগুলির আকার এবং ধারণ ক্ষমতা ডাইনামিকভাবে পরিবর্তিত হতে পারে।
DECLARE
TYPE emp_table IS TABLE OF employees.employee_name%TYPE;
emp_names emp_table;
BEGIN
-- ডেটা ফেচ করা
SELECT employee_name
BULK COLLECT INTO emp_names
FROM employees
WHERE department_id = 10;
-- প্রতিটি কর্মচারীর নাম আউটপুট করা
FOR i IN 1..emp_names.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_names(i));
END LOOP;
END;
এখানে, BULK COLLECT ব্যবহৃত হয়েছে যাতে একাধিক কর্মচারীর নাম একসাথে emp_names
collection-এ সংরক্ষণ করা যায়, এবং পরে সেই ডেটার উপর লুপ চালিয়ে তাদের আউটপুট দেখানো হয়েছে।
DECLARE
TYPE emp_table IS TABLE OF employees.employee_name%TYPE;
emp_names emp_table;
BEGIN
-- ডেটা ফেচ করা
SELECT employee_name
BULK COLLECT INTO emp_names
FROM employees
WHERE department_id = 10
ORDER BY employee_name;
-- নামগুলির তালিকা আউটপুট করা
FOR i IN 1..emp_names.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_names(i));
END LOOP;
END;
এখানে, ORDER BY দিয়ে আউটপুটের ডেটা অর্ডার করা হয়েছে এবং তা emp_names
collection-এ সংরক্ষণ করা হয়েছে।
PL/SQL এ Associative Arrays (যাকে আগে Index-By Tables বলা হত) একটি বিশেষ ধরনের Collection Type যা মূলত ডেটাবেসের মধ্যে ডেটাকে key-value pair আকারে সংরক্ষণ করার জন্য ব্যবহৃত হয়। এই ধরনের অ্যারের মধ্যে ডেটা সংরক্ষণ করার সময় আপনি একটি কাস্টম ইনডেক্স ব্যবহার করতে পারেন, যেমন একটি সংখ্যামূলক বা স্ট্রিং টাইপ ইনডেক্স।
DECLARE
-- Associative Array Declaration
TYPE employee_array IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
employees employee_array; -- Declare the array
BEGIN
-- Inserting values into the associative array
employees(1) := 'John Doe';
employees(2) := 'Jane Smith';
employees(3) := 'Robert Brown';
-- Retrieving values from the associative array
DBMS_OUTPUT.PUT_LINE('Employee 1: ' || employees(1));
DBMS_OUTPUT.PUT_LINE('Employee 2: ' || employees(2));
DBMS_OUTPUT.PUT_LINE('Employee 3: ' || employees(3));
END;
BINARY_INTEGER
হল সেই টাইপ, যা একটি ইনডেক্স হিসেবে কাজ করবে।DECLARE
-- Declare an associative array with varchar index
TYPE employee_data IS TABLE OF VARCHAR2(100) INDEX BY VARCHAR2(20);
employees employee_data;
BEGIN
-- Assigning values to the array with string index
employees('E101') := 'John Doe';
employees('E102') := 'Jane Smith';
employees('E103') := 'Robert Brown';
-- Retrieving values from the associative array
DBMS_OUTPUT.PUT_LINE('Employee E101: ' || employees('E101'));
DBMS_OUTPUT.PUT_LINE('Employee E102: ' || employees('E102'));
DBMS_OUTPUT.PUT_LINE('Employee E103: ' || employees('E103'));
END;
এখানে, অ্যাসোসিয়েটিভ অ্যারেটি VARCHAR2 টাইপের ইনডেক্স ব্যবহার করছে, অর্থাৎ E101
, E102
ইত্যাদি স্ট্রিং ভ্যালু হিসেবে ইনডেক্স করা হচ্ছে।
EXTEND Method:
employees.EXTEND(2); -- This adds 2 more elements to the array
DELETE Method:
employees.DELETE(1); -- Deletes the element at index 1
employees.DELETE; -- Deletes all elements in the array
COUNT Method:
DBMS_OUTPUT.PUT_LINE('Number of employees: ' || employees.COUNT);
Exists Method:
IF employees.EXISTS(2) THEN
DBMS_OUTPUT.PUT_LINE('Employee E102 exists');
ELSE
DBMS_OUTPUT.PUT_LINE('Employee E102 does not exist');
END IF;
PL/SQL-এ Nested Tables এবং VARRAYS (Variable-Size Arrays) হল দুইটি ধরনের collections (সমষ্টি), যা একাধিক মান (values) ধারণ করতে পারে। এগুলি ব্যবহার করে আপনি একাধিক ডেটা আইটেম সংরক্ষণ করতে পারেন এবং প্রোগ্রামিংয়ের মধ্যে বিভিন্ন ডেটা কাঠামো হিসেবে ব্যবহার করতে পারেন।
এখন আমরা বিস্তারিতভাবে Nested Tables এবং VARRAYS সম্পর্কে জানব।
Nested Tables হল PL/SQL এর একটি collection ধরনের যা একাধিক মান ধারণ করতে পারে। এটি একটি ডায়নামিক সাইজ এর collection, এবং এটি একটি টেবিলের মতোই কাজ করে। Nested Table এর আকার পরিবর্তনযোগ্য এবং এটি তিনটি বৈশিষ্ট্য দ্বারা পরিচিত:
DECLARE
-- Nested Table type declaration
TYPE EmployeeTableType IS TABLE OF VARCHAR2(100);
-- Nested Table variable
employee_names EmployeeTableType := EmployeeTableType('John', 'Jane', 'Mary');
BEGIN
-- Adding new element to Nested Table
employee_names.EXTEND; -- Adds an empty slot at the end of the collection
employee_names(employee_names.COUNT) := 'Mark';
-- Displaying elements in Nested Table
FOR i IN 1 .. employee_names.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || employee_names(i));
END LOOP;
END;
এখানে:
VARCHAR2
ডেটা ধারণ করে।EXTEND(n)
: Nested Table এ n
টি নতুন সেল যোগ করে।TRIM(n)
: Nested Table এর শেষ থেকে n
টি সেল মুছে দেয়।COUNT
: Nested Table এর মধ্যে বর্তমান আইটেমের সংখ্যা প্রদান করে।VARRAYS হল PL/SQL এর একটি collection ধরনের যা নির্দিষ্ট আকারের array ধারণ করতে পারে। এটি একটি সীমাবদ্ধ সাইজের collection, অর্থাৎ এটি একটি নির্দিষ্ট সাইজ সীমা সহ একটি এলিমেন্ট ধারণ করে।
DECLARE
-- VARRAY type declaration
TYPE NumberArray IS VARRAY(5) OF NUMBER;
-- VARRAY variable initialization
num_array NumberArray := NumberArray(10, 20, 30, 40, 50);
BEGIN
-- Displaying VARRAY elements
FOR i IN 1 .. num_array.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Number: ' || num_array(i));
END LOOP;
END;
এখানে:
NUMBER
ডেটা ধারণ করে।COUNT
: VARRAYS এর মধ্যে উপস্থিত আইটেমের সংখ্যা প্রদান করে।EXTEND(n)
: VARRAYS এ নতুন আইটেম যোগ করা যায় (যদি এর সাইজ পরিবর্তনযোগ্য হয়)।বিষয় | Nested Table | VARRAYS |
---|---|---|
সাইজ | ডায়নামিক সাইজ (runtime এ বৃদ্ধি বা হ্রাস হতে পারে)। | ফিক্সড আকার (প্রাথমিকভাবে নির্ধারিত)। |
পদ্ধতি | একাধিক আইটেম যোগ বা মুছে ফেলা যেতে পারে (যেমন EXTEND , TRIM )। | সাইজ পূর্ব নির্ধারিত, তবে কিছু সীমিত পরিবর্তন করা যায়। |
ব্যবহার | বড় পরিমাণের বা সম্পর্কিত ডেটার জন্য ব্যবহৃত হয়। | ছোট এবং সীমাবদ্ধ ডেটার জন্য ব্যবহৃত হয়। |
ল্যাঙ্গুয়েজ সাপোর্ট | সিস্টেম টেবিলের মতো পরিচালনা করা যায়। | কেবল একক আইটেমের সাথে কাজ করতে পারে। |
ডেটা সংরক্ষণ | একটি টেবিলের মতো (এটি ডাটাবেসে সংরক্ষণ করা যায়)। | সাধারণত মেমোরিতে সীমাবদ্ধ থাকে। |
যখন আপনার collection এর সাইজের উপর নিয়ন্ত্রণ থাকতে হবে এবং ফিক্সড আকারের প্রয়োজন হবে, তখন VARRAYS ব্যবহার করবেন। তবে যখন collection এর সাইজ ডায়নামিকভাবে বৃদ্ধি বা হ্রাস পেতে পারে এবং সম্পর্কিত ডেটা ধারণ করতে হবে, তখন Nested Tables উপযুক্ত হবে।
PL/SQL তে Collections হল ডেটার একটি গ্রুপ বা অ্যারে যা একাধিক উপাদান ধারণ করতে পারে। এদের মধ্যে Associative Arrays, Nested Tables, এবং VARRAYs (ভেক্টর অ্যারে) অন্তর্ভুক্ত। এই কোলেকশনগুলির সাথে কাজ করার জন্য বিভিন্ন বিল্ট-ইন মেথড রয়েছে, যা কোলেকশনের ডেটা ম্যানিপুলেট করতে সাহায্য করে।
এখানে আমরা বেশ কিছু গুরুত্বপূর্ণ Collection Methods সম্পর্কে আলোচনা করব, যেমন EXTEND, DELETE, EXISTS ইত্যাদি।
EXTEND
মেথডটি কোলেকশনের মধ্যে নতুন উপাদান যুক্ত করতে ব্যবহৃত হয়। এটি কোলেকশনটির আকার বৃদ্ধি করে এবং নতুন উপাদানগুলির জন্য স্থান তৈরি করে। এটি একাধিক উপাদান যুক্ত করার জন্যও ব্যবহার করা যেতে পারে।EXTEND
ব্যবহার করতে পারেন।Associative Arrays
, Nested Tables
, এবং VARRAYs
-এ কাজ করে।DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশনের আকার বাড়ানো
v_numbers.EXTEND(3); -- ৩টি নতুন স্থান যুক্ত হবে
-- কোলেকশনের প্রথম তিনটি উপাদানে মান সেট করা
v_numbers(1) := 10;
v_numbers(2) := 20;
v_numbers(3) := 30;
-- ফলাফল প্রদর্শন
FOR i IN 1..v_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Value: ' || v_numbers(i));
END LOOP;
END;
এখানে EXTEND(3)
কোলেকশনে তিনটি নতুন উপাদান স্থান তৈরি করেছে।
DELETE
মেথডটি কোলেকশন থেকে এক বা একাধিক উপাদান মুছে ফেলতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট উপাদান বা সমস্ত উপাদান মুছে দিতে পারে।DELETE(index)
ব্যবহার করতে পারেন।DELETE
ছাড়া কোন ইনডেক্স প্রদান না করে ব্যবহার করতে পারেন।DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশন তৈরী
v_numbers := number_table(10, 20, 30, 40, 50);
-- কোলেকশন থেকে প্রথম উপাদান মুছে ফেলা
v_numbers.DELETE(1);
-- কোলেকশন থেকে সমস্ত উপাদান মুছে ফেলা
v_numbers.DELETE;
-- ফলাফল প্রদর্শন
FOR i IN 1..v_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Value: ' || v_numbers(i));
END LOOP;
END;
এখানে প্রথমে DELETE(1)
ব্যবহার করে প্রথম উপাদান মুছে ফেলা হয়েছে এবং পরবর্তীতে DELETE
ব্যবহার করে সমস্ত উপাদান মুছে ফেলা হয়েছে।
EXISTS
মেথডটি চেক করে যে একটি নির্দিষ্ট ইনডেক্সে কোলেকশনটি উপাদান ধারণ করছে কিনা। এটি একটি বুলিয়ান মান ফেরত দেয়:DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশন তৈরী
v_numbers := number_table(10, 20, 30, 40, 50);
-- চেক করা যে ৩য় ইনডেক্সে উপাদান আছে কিনা
IF v_numbers.EXISTS(3) THEN
DBMS_OUTPUT.PUT_LINE('Element at index 3: ' || v_numbers(3));
ELSE
DBMS_OUTPUT.PUT_LINE('No element at index 3');
END IF;
-- চেক করা যে ১০ম ইনডেক্সে উপাদান আছে কিনা
IF v_numbers.EXISTS(10) THEN
DBMS_OUTPUT.PUT_LINE('Element at index 10: ' || v_numbers(10));
ELSE
DBMS_OUTPUT.PUT_LINE('No element at index 10');
END IF;
END;
এখানে প্রথমে ইনডেক্স ৩ এ একটি উপাদান রয়েছে কিনা তা চেক করা হয়েছে, এবং তারপর ইনডেক্স ১০ এর জন্য চেক করা হয়েছে, যা খালি থাকায় No element at index 10
দেখাবে।
COUNT
মেথডটি কোলেকশনের বর্তমান উপাদানগুলির সংখ্যা প্রদান করে। এটি একটি ইনটিজার মান ফেরত দেয় যা কোলেকশনের উপাদান সংখ্যা নির্দেশ করে।DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশন তৈরী
v_numbers := number_table(10, 20, 30, 40);
-- কোলেকশনের উপাদান সংখ্যা প্রদর্শন
DBMS_OUTPUT.PUT_LINE('Total elements: ' || v_numbers.COUNT);
END;
এখানে v_numbers.COUNT
কোলেকশনের উপাদান সংখ্যা (৪টি) প্রদান করবে।
TRIM
মেথডটি কোলেকশনের শেষের থেকে একটি বা একাধিক উপাদান মুছে ফেলতে ব্যবহৃত হয়। এটি DELETE
এর মতই, তবে এটি শুধু কোলেকশনের শেষ থেকে উপাদান মুছে ফেলবে।DECLARE
TYPE number_table IS TABLE OF NUMBER;
v_numbers number_table;
BEGIN
-- কোলেকশন তৈরী
v_numbers := number_table(10, 20, 30, 40, 50);
-- কোলেকশনের শেষ থেকে ২টি উপাদান মুছে ফেলা
v_numbers.TRIM(2);
-- কোলেকশনের নতুন মান প্রদর্শন
FOR i IN 1..v_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Value: ' || v_numbers(i));
END LOOP;
END;
এখানে TRIM(2)
কোলেকশনের শেষ থেকে দুটি উপাদান মুছে ফেলবে।
PL/SQL তে কোলেকশনের সাথে কাজ করতে হলে বিভিন্ন মেথডের সাহায্য নিতে হয়। EXTEND, DELETE, EXISTS, COUNT, এবং TRIM এর মত মেথডগুলি কোলেকশনের ডেটা ম্যানিপুলেশন ও চেকিং এর জন্য গুরুত্বপূর্ণ। এই মেথডগুলির মাধ্যমে আপনি কোলেকশনগুলি আরও কার্যকরভাবে পরিচালনা করতে পারবেন।
Read more